<?php

namespace app\common\job;

use app\common\model\AccountBill;
use app\common\service\MarginService;
use think\facade\Log;
use think\queue\Job;

/**
 * 保证金罚款自动确认
 * Class TradeExpiration
 * @package app\common\job
 */
class MarginAutoConfirm
{
    /**
     * fire是消息队列默认调用的方法
     * @param Job $job 当前的任务对象
     * @param array|mixed $data 发布任务时自定义的数据
     */
    public function fire(Job $job, $data)
    {
        $id = $data['id'] ?? null;

        // 处理订单过期
        try {

            $this->getMarginService()->confirm($id, 1, AccountBill::SYSTEM, 1);

        } catch (\Exception $exception) {

            Log::error('消费队列：' . $exception->getMessage());
        }

        $job->delete();
    }

    private function getMarginService(): MarginService
    {
        return app(MarginService::class);
    }
}
